Cloud9にminikubeを構築してみた

Cloud9にminikubeを構築してみた

Cloud9にminikube環境をインストールし、起動してみました
Clock Icon2024.10.16

はじめに

こんにちは、アノテーションのなかたです。
今回は、Cloud9 に minikube環境をインストールし、起動してみました。

minikube とは

ローカル環境で簡単に Kubernetes 環境を用意できるツールです。

Minikube はローカル環境で Kubernetes を簡単に実行するためのツールです。Kubernetes を試したり日々の開発への使用を検討するユーザー向けに、PC上のVM内でシングルノードのKubernetes クラスターを実行することができます。
https://kubernetes.io/ja/docs/setup/learning-environment/minikube/

やってみる

minikube のドキュメントより手順を実施しています。
https://minikube.sigs.k8s.io/docs/start/?arch=%2Flinux%2Fx86-64%2Fstable%2Fbinary+download

注意点: minikubeの実行には、マルチコアCPUが必要

はじめにt2.microで作成してみましたが、エラーが発生しました。

bash
$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 99.0M  100 99.0M    0     0  19.1M      0  0:00:05  0:00:05 --:--:-- 21.3M
$ sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64
$ minikube start
* minikube v1.34.0 on Amazon 2023.5.20241001 (xen/amd64)
* Automatically selected the docker driver. Other choices: ssh, none

X Exiting due to RSRC_INSUFFICIENT_CORES:  has less than 2 CPUs available, but Kubernetes requires at least 2 to be available

minikube は実行する前提条件として、2つ以上のマルチコアCPUが求められるようです。

X Exiting due to RSRC_INSUFFICIENT_CORES: has less than 2 CPUs available, but Kubernetes requires at least 2 to be available

1. Cloud9の作成

上記より、インスタンスタイプはCPUコアが2つ使用可能なt3.mediumを選択します。
他のインスタンスタイプを使用したい場合は、CLIでインスタンスごとのコア数を確認できます。
https://dev.classmethod.jp/articles/tsnote-ec2-how-to-verification-number-of-physical-cores/

AMI は Amazon Linux 2023 を選択し、Cloud9 を作成します。

2. minikubeのインストール

minikube をインストールします。

bash
$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 99.0M  100 99.0M    0     0  19.1M      0  0:00:05  0:00:05 --:--:-- 21.3M
$ sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64

minikube環境をDocker上で起動します。

bash
$ minikube start
* minikube v1.34.0 on Amazon 2023.5.20241001 (xen/amd64)
* Automatically selected the docker driver. Other choices: ssh, none
* Using Docker driver with root privileges
* Starting "minikube" primary control-plane node in "minikube" cluster
* Pulling base image v0.0.45 ...
* Downloading Kubernetes v1.31.0 preload ...
    > preloaded-images-k8s-v18-v1...:  326.69 MiB / 326.69 MiB  100.00% 28.75 M
    > gcr.io/k8s-minikube/kicbase...:  487.90 MiB / 487.90 MiB  100.00% 21.95 M
* Creating docker container (CPUs=2, Memory=2200MB) ...

X Docker is nearly out of disk space, which may cause deployments to fail! (89% of capacity). You can pass '--force' to skip this check.
* Suggestion: 

    Try one or more of the following to free up space on the device:

    1. Run "docker system prune" to remove unused Docker data (optionally with "-a")
    2. Increase the storage allocated to Docker for Desktop by clicking on:
    Docker icon > Preferences > Resources > Disk Image Size
    3. Run "minikube ssh -- docker system prune" if using the Docker container runtime
* Related issue: https://github.com/kubernetes/minikube/issues/9024

* Preparing Kubernetes v1.31.0 on Docker 27.2.0 ...
  - Generating certificates and keys ...
  - Booting up control plane ...
  - Configuring RBAC rules ...
* Configuring bridge CNI (Container Networking Interface) ...
* Verifying Kubernetes components...
  - Using image gcr.io/k8s-minikube/storage-provisioner:v5
* Enabled addons: storage-provisioner, default-storageclass
* kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A'
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

ポッドの取得を試してみます。

$ minikube kubectl -- get pods -A
    > kubectl.sha256:  64 B / 64 B [-------------------------] 100.00% ? p/s 0s
    > kubectl:  53.77 MiB / 53.77 MiB [-----------] 100.00% 73.87 MiB p/s 900ms
NAMESPACE     NAME                               READY   STATUS    RESTARTS   AGE
kube-system   coredns-6f6b679f8f-pvnzb           1/1     Running   0          53s
kube-system   etcd-minikube                      1/1     Running   0          59s
kube-system   kube-apiserver-minikube            1/1     Running   0          58s
kube-system   kube-controller-manager-minikube   1/1     Running   0          59s
kube-system   kube-proxy-82lgr                   1/1     Running   0          53s
kube-system   kube-scheduler-minikube            1/1     Running   0          58s
kube-system   storage-provisioner                1/1     Running   0          56s

参考

https://coffee-nominagara.com/cloud9-minikube

アノテーション株式会社について

アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.